/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Piezas;

import java.awt.Graphics2D;

/**
 *
 * @author Jorge
 */
public class MatrizDatos {

    public Cuadrado[][] arrayPiezas;
    private int x;
    private int y;

    public MatrizDatos(int x_, int y_) {
        this.x = x_;
        this.y = y_;
        arrayPiezas = new Cuadrado[4][4];
        for (int i = 0; i < 4; i++) {
            for (int j = 0; j < 4; j++) {
                arrayPiezas[i][j] = new Cuadrado();
            }
        }
    }

    public void setPieza(Pieza nuevaPieza) {
        int[] pieza = null;
        switch (nuevaPieza.tipo) {
            case 0:
                pieza = TipoPieza.pieza0; // L
                break;
            case 1:
                pieza = TipoPieza.pieza1; // O
                break;
            case 2:
                pieza = TipoPieza.pieza2; // Z
                break;
            case 3:
                pieza = TipoPieza.pieza3; // I
                break;
            case 4:
                pieza = TipoPieza.pieza4; // T
                break;
            case 5:
                pieza = TipoPieza.pieza5; // J
                break;
            case 6:
                pieza = TipoPieza.pieza6; // S
                break;
            case 7:
                pieza = TipoPieza.pieza6;
                break;
        }
        limpiarMatriz();
        for (int i = 0; i < pieza.length; i = i + 2) { //Revisar esto!
            arrayPiezas[pieza[i]][pieza[i + 1] - 2].tipoCuadrado = 2;
            arrayPiezas[pieza[i]][pieza[i + 1] - 2].setImagen(Integer.toString(nuevaPieza.imagen));
        }
        Utilidades.Utils.printArrayCuadrados(arrayPiezas);
    }

    public void limpiarMatriz() {
        for (int i = 0; i < 4; i++) {
            for (int j = 0; j < 4; j++) {
                arrayPiezas[i][j].tipoCuadrado = 0;
            }
        }
    }

    public void renderMatrizDatos(Graphics2D g2d) {
        int aumX = 0;
        int aumY = 0;
        for (int i = 0; i < 4; i++) {
            for (int j = 0; j < 4; j++) {
                if (arrayPiezas[i][j].tipoCuadrado == 2) {
                    arrayPiezas[i][j].renderCuadrado(g2d, this.x + aumX, this.y + aumY);
                }
                aumX += 27 + 3;
            }
            aumX = 0;
            aumY += 28 + 3;
        }
    }
}
